# 输入大于2的自然数
n = int(input("请输入一个大于2的自然数："))

# 确保输入符合要求
if n <= 2:
    print("请输入大于2的自然数！")
else:
    # 生成2到n-1的所有整数组成的集合
    primes = set(range(2, n))

    # 利用埃氏筛法筛选素数
    # 遍历2到sqrt(n)的整数，排除其倍数
    for i in range(2, int(n ** 0.5) + 1):
        # 若i仍在集合中（即i是素数），则移除其所有倍数
        if i in primes:
            # 生成i的倍数（从i*2开始，步长为i），并用discard批量移除
            multiples = [j for j in range(i * 2, n, i)]
            for multiple in multiples:
                primes.discard(multiple)

    # 输出结果
    print(f"小于{n}的所有素数组成的集合为：{primes}")